php 扩展模块如何安装

        php 和 apapche 类似,核心文件为 /usr/local/php/bin/php ,针对 apache 的是 /usr/local/apache2/modules/libphp5.so 模块。这两个文件是核心,在编译 php 的时候会提前让它支持一些功能,比如支持 mysql,这个功能其实是 php 的一个模块,只不过这个模块是直接和 php 或者 libphp5.so 文件编译在一起的。当我们编译完成 php 后,发现还需要让 php 支持另外的模块,这时候可以重新编译 php ,加上配置参数,或者直接编译出一个独立的模块文件。然后让 php去调用它。下面以编译 memcache 为例;

1.下载 memcache 源码包

1
[root@lamp src]# wget http://www.apelearn.com/bbs/data/attachment/forum/memcache-2.2.3.tgz
  1. 安装
1
2
3
[root@lamp src]# tar zxvf memcache-2.2.3.tgz
[root@lamp src]# cd memcache-2.2.3
[root@lamp memcache-2.2.3]# /usr/local/php/bin/phpize

        说明:这一步是借助 php 的 phpize 工具生成 configure 文件。在这一步可能会遇到一些错误,不如 “Cannot find config.m4”,这是因为系统还没有安装 m4 工具,使用 yum 安装

1
[root@lamp ~]# yum install -y m4

        还有错误“Cannot find autoconf” ,解决办法是

1
2
3
4
[root@lamp ~]# yum install -y autoconf
[root@lamp memcache-2.2.3]# ./configure --with-php-config=/usrl/local/php/bin/php-config
[root@lamp memcache-2.2.3]# make && make install

        说明:当 make install 后会生成一个 memcache.so 的模块文件,该文件在 php 的 extension_dir 下。查看 php extension_dir 的方法是

1
[root@lamp ~]# /usr/local/php/bin/php -i | grep extension_dir

        修改 extension_dir 的方法是,编辑 php.ini 文件

1
[root@lamp lamp]# vim /usr/local/php/etc/php.ini

        修改为(一般情况不做修改)

        然后继续在 php.ini 中添加

1
extension=memcache.so

还有就是重新动态编译 php 自带模块

        首先找到 php 的源码包

1
[root@lamp ~]# cd /usr/local/src/php-5.6.6

        很多模块的源码都是 /ext 目录下

1
[root@lamp php-5.6.6]# cd ext/

        现在编译一下 curl 模块

1
[root@lamp ext]# /usr/local/php/bin/php -m | grep -i curl

        进入 curl 目录

1
[root@lamp ext]# cd curl/

1
[root@lamp curl]# /usr/local/php/bin/phpize

        上面这步是为了生成 configure 文件,没有这个文件是没办法编译的

        编译

1
[root@lamp curl]# ./configure --with-php-config=/usr/local/php/bin/php-config

        安装

1
[root@lamp curl]# make && make install

        编译安装完成,最后一排会有模块目录

        加载模块

        编辑 php.ini

1
[root@lamp curl]# vim /usr/local/php/etc/php.ini

        增加内容

1
extension=curl.so

        查看是否加载成功